CREATE TABLE IF NOT EXISTS usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    senha_hash VARCHAR(255) NOT NULL,
    nivel_acesso ENUM('usuario', 'admin') DEFAULT 'usuario',
    avatar TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS categorias (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(50) UNIQUE
);

INSERT IGNORE INTO categorias (nome) VALUES
('Surrealismo'), ('Cartoon'), ('Anime/Mangá'), ('Pixel'), ('Expressionismo');

CREATE TABLE IF NOT EXISTS filtros (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(50) UNIQUE
);

INSERT IGNORE INTO filtros (nome) VALUES
('Sombreamento'), ('Iluminação'), ('Digital'), ('Textura');

CREATE TABLE IF NOT EXISTS conteudos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titulo VARCHAR(150),
    tipo ENUM('pdf', 'imagem'),
    link_conteudo TEXT,
    descricao TEXT,
    usuario_id INT,
    categoria_id INT,
    data_postagem DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE,
    FOREIGN KEY (categoria_id) REFERENCES categorias(id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS videos_admin (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titulo VARCHAR(150),
    link_youtube TEXT,
    categoria_id INT,
    admin_id INT,
    data_postagem DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (categoria_id) REFERENCES categorias(id) ON DELETE CASCADE,
    FOREIGN KEY (admin_id) REFERENCES usuarios(id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS personalizacoes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    usuario_id INT UNIQUE,
    tema ENUM('claro', 'escuro') DEFAULT 'claro',
    tamanho_fonte INT DEFAULT 1,
    libras_plugin BOOLEAN DEFAULT FALSE,
    navegacao_teclado BOOLEAN DEFAULT TRUE,
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE
);